home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / lang / ace102.lha / include / sort.h < prev    next >
Text File  |  1993-01-30  |  670b  |  41 lines

  1.   * comb sort an array of strings * 
  2.   
  3.   Author: David Benn
  4.     Date: 29th,30th March, 4th April, 22nd July 1992
  5. }
  6.  
  7. SUB max&(x&,y&)
  8.  if x&>y& then max&=x& else max&=y&
  9. END SUB
  10.  
  11. SUB sort(addr&,n&)
  12.  
  13. { - sorts up to 10000 elements
  14.     in a string array.
  15.   - addr&=address of array.
  16.   - n&=# of elements in array.
  17. const true=-1
  18. const false=0
  19. longint swapped,swaps
  20. single  gap
  21. dim n$(10000) address addr&
  22.  
  23. swapped=true
  24. gap=n&
  25. while swapped or gap<>1
  26.   swapped=false
  27.   gap=max&(int(gap/1.3),1)
  28.   for i=0 to n&-gap
  29.     if n$(i)>n$(i+gap) then 
  30.       temp$=n$(i)
  31.       n$(i)=n$(i+gap)
  32.       n$(i+gap)=temp$
  33.       swapped=true
  34.       ++swaps
  35.     end if
  36.   next
  37. wend
  38. END SUB
  39.